/**
 */
package org.mro.grib.model.files.secondEdition.products.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;

import org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate420;
import org.mro.grib.model.files.secondEdition.products.ProductsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Product Definition Template420</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getParameterCategory <em>Parameter Category</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getParameterNumber <em>Parameter Number</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getTypeOfGeneratingProcess <em>Type Of Generating Process</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getNumberOfRadarSites <em>Number Of Radar Sites</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getUnitOfTimeRange <em>Unit Of Time Range</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getSiteLatitude <em>Site Latitude</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getSiteLongitude <em>Site Longitude</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getSiteElevation <em>Site Elevation</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getAlphanumericSiteID <em>Alphanumeric Site ID</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getNumericSiteID <em>Numeric Site ID</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getOperatingMode <em>Operating Mode</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getReflectivityCalibrationConstant <em>Reflectivity Calibration Constant</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getQualityControlIndicator <em>Quality Control Indicator</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getClutterFilterIndicator <em>Clutter Filter Indicator</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getConstantAntennaElevationAngle <em>Constant Antenna Elevation Angle</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getAccumulationInterval <em>Accumulation Interval</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getReferenceReflectivity <em>Reference Reflectivity</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getRangeBinSpacing <em>Range Bin Spacing</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate420Impl#getRadialAngularSpacing <em>Radial Angular Spacing</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class ProductDefinitionTemplate420Impl extends EObjectImpl implements ProductDefinitionTemplate420 {
	/**
	 * The default value of the '{@link #getParameterCategory() <em>Parameter Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getParameterCategory()
	 * @generated
	 * @ordered
	 */
	protected static final byte PARAMETER_CATEGORY_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getParameterCategory() <em>Parameter Category</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getParameterCategory()
	 * @generated
	 * @ordered
	 */
	protected byte parameterCategory = PARAMETER_CATEGORY_EDEFAULT;

	/**
	 * The default value of the '{@link #getParameterNumber() <em>Parameter Number</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getParameterNumber()
	 * @generated
	 * @ordered
	 */
	protected static final byte PARAMETER_NUMBER_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getParameterNumber() <em>Parameter Number</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getParameterNumber()
	 * @generated
	 * @ordered
	 */
	protected byte parameterNumber = PARAMETER_NUMBER_EDEFAULT;

	/**
	 * The default value of the '{@link #getTypeOfGeneratingProcess() <em>Type Of Generating Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfGeneratingProcess()
	 * @generated
	 * @ordered
	 */
	protected static final byte TYPE_OF_GENERATING_PROCESS_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getTypeOfGeneratingProcess() <em>Type Of Generating Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfGeneratingProcess()
	 * @generated
	 * @ordered
	 */
	protected byte typeOfGeneratingProcess = TYPE_OF_GENERATING_PROCESS_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfRadarSites() <em>Number Of Radar Sites</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfRadarSites()
	 * @generated
	 * @ordered
	 */
	protected static final byte NUMBER_OF_RADAR_SITES_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getNumberOfRadarSites() <em>Number Of Radar Sites</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfRadarSites()
	 * @generated
	 * @ordered
	 */
	protected byte numberOfRadarSites = NUMBER_OF_RADAR_SITES_EDEFAULT;

	/**
	 * The default value of the '{@link #getUnitOfTimeRange() <em>Unit Of Time Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfTimeRange()
	 * @generated
	 * @ordered
	 */
	protected static final byte UNIT_OF_TIME_RANGE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getUnitOfTimeRange() <em>Unit Of Time Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfTimeRange()
	 * @generated
	 * @ordered
	 */
	protected byte unitOfTimeRange = UNIT_OF_TIME_RANGE_EDEFAULT;

	/**
	 * The default value of the '{@link #getSiteLatitude() <em>Site Latitude</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteLatitude()
	 * @generated
	 * @ordered
	 */
	protected static final int SITE_LATITUDE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSiteLatitude() <em>Site Latitude</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteLatitude()
	 * @generated
	 * @ordered
	 */
	protected int siteLatitude = SITE_LATITUDE_EDEFAULT;

	/**
	 * The default value of the '{@link #getSiteLongitude() <em>Site Longitude</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteLongitude()
	 * @generated
	 * @ordered
	 */
	protected static final int SITE_LONGITUDE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSiteLongitude() <em>Site Longitude</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteLongitude()
	 * @generated
	 * @ordered
	 */
	protected int siteLongitude = SITE_LONGITUDE_EDEFAULT;

	/**
	 * The default value of the '{@link #getSiteElevation() <em>Site Elevation</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteElevation()
	 * @generated
	 * @ordered
	 */
	protected static final int SITE_ELEVATION_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSiteElevation() <em>Site Elevation</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSiteElevation()
	 * @generated
	 * @ordered
	 */
	protected int siteElevation = SITE_ELEVATION_EDEFAULT;

	/**
	 * The default value of the '{@link #getAlphanumericSiteID() <em>Alphanumeric Site ID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAlphanumericSiteID()
	 * @generated
	 * @ordered
	 */
	protected static final int ALPHANUMERIC_SITE_ID_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getAlphanumericSiteID() <em>Alphanumeric Site ID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAlphanumericSiteID()
	 * @generated
	 * @ordered
	 */
	protected int alphanumericSiteID = ALPHANUMERIC_SITE_ID_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumericSiteID() <em>Numeric Site ID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumericSiteID()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMERIC_SITE_ID_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumericSiteID() <em>Numeric Site ID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumericSiteID()
	 * @generated
	 * @ordered
	 */
	protected int numericSiteID = NUMERIC_SITE_ID_EDEFAULT;

	/**
	 * The default value of the '{@link #getOperatingMode() <em>Operating Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOperatingMode()
	 * @generated
	 * @ordered
	 */
	protected static final byte OPERATING_MODE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getOperatingMode() <em>Operating Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOperatingMode()
	 * @generated
	 * @ordered
	 */
	protected byte operatingMode = OPERATING_MODE_EDEFAULT;

	/**
	 * The default value of the '{@link #getReflectivityCalibrationConstant() <em>Reflectivity Calibration Constant</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getReflectivityCalibrationConstant()
	 * @generated
	 * @ordered
	 */
	protected static final byte REFLECTIVITY_CALIBRATION_CONSTANT_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getReflectivityCalibrationConstant() <em>Reflectivity Calibration Constant</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getReflectivityCalibrationConstant()
	 * @generated
	 * @ordered
	 */
	protected byte reflectivityCalibrationConstant = REFLECTIVITY_CALIBRATION_CONSTANT_EDEFAULT;

	/**
	 * The default value of the '{@link #getQualityControlIndicator() <em>Quality Control Indicator</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQualityControlIndicator()
	 * @generated
	 * @ordered
	 */
	protected static final byte QUALITY_CONTROL_INDICATOR_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getQualityControlIndicator() <em>Quality Control Indicator</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQualityControlIndicator()
	 * @generated
	 * @ordered
	 */
	protected byte qualityControlIndicator = QUALITY_CONTROL_INDICATOR_EDEFAULT;

	/**
	 * The default value of the '{@link #getClutterFilterIndicator() <em>Clutter Filter Indicator</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClutterFilterIndicator()
	 * @generated
	 * @ordered
	 */
	protected static final byte CLUTTER_FILTER_INDICATOR_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getClutterFilterIndicator() <em>Clutter Filter Indicator</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClutterFilterIndicator()
	 * @generated
	 * @ordered
	 */
	protected byte clutterFilterIndicator = CLUTTER_FILTER_INDICATOR_EDEFAULT;

	/**
	 * The default value of the '{@link #getConstantAntennaElevationAngle() <em>Constant Antenna Elevation Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getConstantAntennaElevationAngle()
	 * @generated
	 * @ordered
	 */
	protected static final byte CONSTANT_ANTENNA_ELEVATION_ANGLE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getConstantAntennaElevationAngle() <em>Constant Antenna Elevation Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getConstantAntennaElevationAngle()
	 * @generated
	 * @ordered
	 */
	protected byte constantAntennaElevationAngle = CONSTANT_ANTENNA_ELEVATION_ANGLE_EDEFAULT;

	/**
	 * The default value of the '{@link #getAccumulationInterval() <em>Accumulation Interval</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAccumulationInterval()
	 * @generated
	 * @ordered
	 */
	protected static final short ACCUMULATION_INTERVAL_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getAccumulationInterval() <em>Accumulation Interval</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAccumulationInterval()
	 * @generated
	 * @ordered
	 */
	protected short accumulationInterval = ACCUMULATION_INTERVAL_EDEFAULT;

	/**
	 * The default value of the '{@link #getReferenceReflectivity() <em>Reference Reflectivity</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getReferenceReflectivity()
	 * @generated
	 * @ordered
	 */
	protected static final byte REFERENCE_REFLECTIVITY_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getReferenceReflectivity() <em>Reference Reflectivity</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getReferenceReflectivity()
	 * @generated
	 * @ordered
	 */
	protected byte referenceReflectivity = REFERENCE_REFLECTIVITY_EDEFAULT;

	/**
	 * The default value of the '{@link #getRangeBinSpacing() <em>Range Bin Spacing</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRangeBinSpacing()
	 * @generated
	 * @ordered
	 */
	protected static final int RANGE_BIN_SPACING_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getRangeBinSpacing() <em>Range Bin Spacing</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRangeBinSpacing()
	 * @generated
	 * @ordered
	 */
	protected int rangeBinSpacing = RANGE_BIN_SPACING_EDEFAULT;

	/**
	 * The default value of the '{@link #getRadialAngularSpacing() <em>Radial Angular Spacing</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRadialAngularSpacing()
	 * @generated
	 * @ordered
	 */
	protected static final short RADIAL_ANGULAR_SPACING_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getRadialAngularSpacing() <em>Radial Angular Spacing</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRadialAngularSpacing()
	 * @generated
	 * @ordered
	 */
	protected short radialAngularSpacing = RADIAL_ANGULAR_SPACING_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProductDefinitionTemplate420Impl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ProductsPackage.Literals.PRODUCT_DEFINITION_TEMPLATE420;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getParameterCategory() {
		return parameterCategory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParameterCategory(byte newParameterCategory) {
		byte oldParameterCategory = parameterCategory;
		parameterCategory = newParameterCategory;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_CATEGORY, oldParameterCategory, parameterCategory));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getParameterNumber() {
		return parameterNumber;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParameterNumber(byte newParameterNumber) {
		byte oldParameterNumber = parameterNumber;
		parameterNumber = newParameterNumber;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_NUMBER, oldParameterNumber, parameterNumber));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getTypeOfGeneratingProcess() {
		return typeOfGeneratingProcess;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeOfGeneratingProcess(byte newTypeOfGeneratingProcess) {
		byte oldTypeOfGeneratingProcess = typeOfGeneratingProcess;
		typeOfGeneratingProcess = newTypeOfGeneratingProcess;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__TYPE_OF_GENERATING_PROCESS, oldTypeOfGeneratingProcess, typeOfGeneratingProcess));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getNumberOfRadarSites() {
		return numberOfRadarSites;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfRadarSites(byte newNumberOfRadarSites) {
		byte oldNumberOfRadarSites = numberOfRadarSites;
		numberOfRadarSites = newNumberOfRadarSites;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMBER_OF_RADAR_SITES, oldNumberOfRadarSites, numberOfRadarSites));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getUnitOfTimeRange() {
		return unitOfTimeRange;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setUnitOfTimeRange(byte newUnitOfTimeRange) {
		byte oldUnitOfTimeRange = unitOfTimeRange;
		unitOfTimeRange = newUnitOfTimeRange;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__UNIT_OF_TIME_RANGE, oldUnitOfTimeRange, unitOfTimeRange));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSiteLatitude() {
		return siteLatitude;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSiteLatitude(int newSiteLatitude) {
		int oldSiteLatitude = siteLatitude;
		siteLatitude = newSiteLatitude;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LATITUDE, oldSiteLatitude, siteLatitude));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSiteLongitude() {
		return siteLongitude;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSiteLongitude(int newSiteLongitude) {
		int oldSiteLongitude = siteLongitude;
		siteLongitude = newSiteLongitude;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LONGITUDE, oldSiteLongitude, siteLongitude));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSiteElevation() {
		return siteElevation;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSiteElevation(int newSiteElevation) {
		int oldSiteElevation = siteElevation;
		siteElevation = newSiteElevation;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_ELEVATION, oldSiteElevation, siteElevation));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getAlphanumericSiteID() {
		return alphanumericSiteID;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAlphanumericSiteID(int newAlphanumericSiteID) {
		int oldAlphanumericSiteID = alphanumericSiteID;
		alphanumericSiteID = newAlphanumericSiteID;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ALPHANUMERIC_SITE_ID, oldAlphanumericSiteID, alphanumericSiteID));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumericSiteID() {
		return numericSiteID;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumericSiteID(int newNumericSiteID) {
		int oldNumericSiteID = numericSiteID;
		numericSiteID = newNumericSiteID;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMERIC_SITE_ID, oldNumericSiteID, numericSiteID));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getOperatingMode() {
		return operatingMode;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setOperatingMode(byte newOperatingMode) {
		byte oldOperatingMode = operatingMode;
		operatingMode = newOperatingMode;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__OPERATING_MODE, oldOperatingMode, operatingMode));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getReflectivityCalibrationConstant() {
		return reflectivityCalibrationConstant;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setReflectivityCalibrationConstant(byte newReflectivityCalibrationConstant) {
		byte oldReflectivityCalibrationConstant = reflectivityCalibrationConstant;
		reflectivityCalibrationConstant = newReflectivityCalibrationConstant;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFLECTIVITY_CALIBRATION_CONSTANT, oldReflectivityCalibrationConstant, reflectivityCalibrationConstant));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getQualityControlIndicator() {
		return qualityControlIndicator;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQualityControlIndicator(byte newQualityControlIndicator) {
		byte oldQualityControlIndicator = qualityControlIndicator;
		qualityControlIndicator = newQualityControlIndicator;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__QUALITY_CONTROL_INDICATOR, oldQualityControlIndicator, qualityControlIndicator));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getClutterFilterIndicator() {
		return clutterFilterIndicator;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setClutterFilterIndicator(byte newClutterFilterIndicator) {
		byte oldClutterFilterIndicator = clutterFilterIndicator;
		clutterFilterIndicator = newClutterFilterIndicator;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CLUTTER_FILTER_INDICATOR, oldClutterFilterIndicator, clutterFilterIndicator));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getConstantAntennaElevationAngle() {
		return constantAntennaElevationAngle;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setConstantAntennaElevationAngle(byte newConstantAntennaElevationAngle) {
		byte oldConstantAntennaElevationAngle = constantAntennaElevationAngle;
		constantAntennaElevationAngle = newConstantAntennaElevationAngle;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CONSTANT_ANTENNA_ELEVATION_ANGLE, oldConstantAntennaElevationAngle, constantAntennaElevationAngle));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public short getAccumulationInterval() {
		return accumulationInterval;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAccumulationInterval(short newAccumulationInterval) {
		short oldAccumulationInterval = accumulationInterval;
		accumulationInterval = newAccumulationInterval;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ACCUMULATION_INTERVAL, oldAccumulationInterval, accumulationInterval));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getReferenceReflectivity() {
		return referenceReflectivity;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setReferenceReflectivity(byte newReferenceReflectivity) {
		byte oldReferenceReflectivity = referenceReflectivity;
		referenceReflectivity = newReferenceReflectivity;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFERENCE_REFLECTIVITY, oldReferenceReflectivity, referenceReflectivity));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getRangeBinSpacing() {
		return rangeBinSpacing;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRangeBinSpacing(int newRangeBinSpacing) {
		int oldRangeBinSpacing = rangeBinSpacing;
		rangeBinSpacing = newRangeBinSpacing;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RANGE_BIN_SPACING, oldRangeBinSpacing, rangeBinSpacing));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public short getRadialAngularSpacing() {
		return radialAngularSpacing;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRadialAngularSpacing(short newRadialAngularSpacing) {
		short oldRadialAngularSpacing = radialAngularSpacing;
		radialAngularSpacing = newRadialAngularSpacing;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RADIAL_ANGULAR_SPACING, oldRadialAngularSpacing, radialAngularSpacing));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_CATEGORY:
				return getParameterCategory();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_NUMBER:
				return getParameterNumber();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__TYPE_OF_GENERATING_PROCESS:
				return getTypeOfGeneratingProcess();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMBER_OF_RADAR_SITES:
				return getNumberOfRadarSites();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__UNIT_OF_TIME_RANGE:
				return getUnitOfTimeRange();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LATITUDE:
				return getSiteLatitude();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LONGITUDE:
				return getSiteLongitude();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_ELEVATION:
				return getSiteElevation();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ALPHANUMERIC_SITE_ID:
				return getAlphanumericSiteID();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMERIC_SITE_ID:
				return getNumericSiteID();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__OPERATING_MODE:
				return getOperatingMode();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFLECTIVITY_CALIBRATION_CONSTANT:
				return getReflectivityCalibrationConstant();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__QUALITY_CONTROL_INDICATOR:
				return getQualityControlIndicator();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CLUTTER_FILTER_INDICATOR:
				return getClutterFilterIndicator();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CONSTANT_ANTENNA_ELEVATION_ANGLE:
				return getConstantAntennaElevationAngle();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ACCUMULATION_INTERVAL:
				return getAccumulationInterval();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFERENCE_REFLECTIVITY:
				return getReferenceReflectivity();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RANGE_BIN_SPACING:
				return getRangeBinSpacing();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RADIAL_ANGULAR_SPACING:
				return getRadialAngularSpacing();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_CATEGORY:
				setParameterCategory((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_NUMBER:
				setParameterNumber((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__TYPE_OF_GENERATING_PROCESS:
				setTypeOfGeneratingProcess((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMBER_OF_RADAR_SITES:
				setNumberOfRadarSites((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__UNIT_OF_TIME_RANGE:
				setUnitOfTimeRange((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LATITUDE:
				setSiteLatitude((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LONGITUDE:
				setSiteLongitude((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_ELEVATION:
				setSiteElevation((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ALPHANUMERIC_SITE_ID:
				setAlphanumericSiteID((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMERIC_SITE_ID:
				setNumericSiteID((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__OPERATING_MODE:
				setOperatingMode((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFLECTIVITY_CALIBRATION_CONSTANT:
				setReflectivityCalibrationConstant((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__QUALITY_CONTROL_INDICATOR:
				setQualityControlIndicator((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CLUTTER_FILTER_INDICATOR:
				setClutterFilterIndicator((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CONSTANT_ANTENNA_ELEVATION_ANGLE:
				setConstantAntennaElevationAngle((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ACCUMULATION_INTERVAL:
				setAccumulationInterval((Short)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFERENCE_REFLECTIVITY:
				setReferenceReflectivity((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RANGE_BIN_SPACING:
				setRangeBinSpacing((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RADIAL_ANGULAR_SPACING:
				setRadialAngularSpacing((Short)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_CATEGORY:
				setParameterCategory(PARAMETER_CATEGORY_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_NUMBER:
				setParameterNumber(PARAMETER_NUMBER_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__TYPE_OF_GENERATING_PROCESS:
				setTypeOfGeneratingProcess(TYPE_OF_GENERATING_PROCESS_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMBER_OF_RADAR_SITES:
				setNumberOfRadarSites(NUMBER_OF_RADAR_SITES_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__UNIT_OF_TIME_RANGE:
				setUnitOfTimeRange(UNIT_OF_TIME_RANGE_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LATITUDE:
				setSiteLatitude(SITE_LATITUDE_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LONGITUDE:
				setSiteLongitude(SITE_LONGITUDE_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_ELEVATION:
				setSiteElevation(SITE_ELEVATION_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ALPHANUMERIC_SITE_ID:
				setAlphanumericSiteID(ALPHANUMERIC_SITE_ID_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMERIC_SITE_ID:
				setNumericSiteID(NUMERIC_SITE_ID_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__OPERATING_MODE:
				setOperatingMode(OPERATING_MODE_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFLECTIVITY_CALIBRATION_CONSTANT:
				setReflectivityCalibrationConstant(REFLECTIVITY_CALIBRATION_CONSTANT_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__QUALITY_CONTROL_INDICATOR:
				setQualityControlIndicator(QUALITY_CONTROL_INDICATOR_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CLUTTER_FILTER_INDICATOR:
				setClutterFilterIndicator(CLUTTER_FILTER_INDICATOR_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CONSTANT_ANTENNA_ELEVATION_ANGLE:
				setConstantAntennaElevationAngle(CONSTANT_ANTENNA_ELEVATION_ANGLE_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ACCUMULATION_INTERVAL:
				setAccumulationInterval(ACCUMULATION_INTERVAL_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFERENCE_REFLECTIVITY:
				setReferenceReflectivity(REFERENCE_REFLECTIVITY_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RANGE_BIN_SPACING:
				setRangeBinSpacing(RANGE_BIN_SPACING_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RADIAL_ANGULAR_SPACING:
				setRadialAngularSpacing(RADIAL_ANGULAR_SPACING_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_CATEGORY:
				return parameterCategory != PARAMETER_CATEGORY_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__PARAMETER_NUMBER:
				return parameterNumber != PARAMETER_NUMBER_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__TYPE_OF_GENERATING_PROCESS:
				return typeOfGeneratingProcess != TYPE_OF_GENERATING_PROCESS_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMBER_OF_RADAR_SITES:
				return numberOfRadarSites != NUMBER_OF_RADAR_SITES_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__UNIT_OF_TIME_RANGE:
				return unitOfTimeRange != UNIT_OF_TIME_RANGE_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LATITUDE:
				return siteLatitude != SITE_LATITUDE_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_LONGITUDE:
				return siteLongitude != SITE_LONGITUDE_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__SITE_ELEVATION:
				return siteElevation != SITE_ELEVATION_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ALPHANUMERIC_SITE_ID:
				return alphanumericSiteID != ALPHANUMERIC_SITE_ID_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__NUMERIC_SITE_ID:
				return numericSiteID != NUMERIC_SITE_ID_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__OPERATING_MODE:
				return operatingMode != OPERATING_MODE_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFLECTIVITY_CALIBRATION_CONSTANT:
				return reflectivityCalibrationConstant != REFLECTIVITY_CALIBRATION_CONSTANT_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__QUALITY_CONTROL_INDICATOR:
				return qualityControlIndicator != QUALITY_CONTROL_INDICATOR_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CLUTTER_FILTER_INDICATOR:
				return clutterFilterIndicator != CLUTTER_FILTER_INDICATOR_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__CONSTANT_ANTENNA_ELEVATION_ANGLE:
				return constantAntennaElevationAngle != CONSTANT_ANTENNA_ELEVATION_ANGLE_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__ACCUMULATION_INTERVAL:
				return accumulationInterval != ACCUMULATION_INTERVAL_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__REFERENCE_REFLECTIVITY:
				return referenceReflectivity != REFERENCE_REFLECTIVITY_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RANGE_BIN_SPACING:
				return rangeBinSpacing != RANGE_BIN_SPACING_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE420__RADIAL_ANGULAR_SPACING:
				return radialAngularSpacing != RADIAL_ANGULAR_SPACING_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (parameterCategory: "); //$NON-NLS-1$
		result.append(parameterCategory);
		result.append(", parameterNumber: "); //$NON-NLS-1$
		result.append(parameterNumber);
		result.append(", typeOfGeneratingProcess: "); //$NON-NLS-1$
		result.append(typeOfGeneratingProcess);
		result.append(", numberOfRadarSites: "); //$NON-NLS-1$
		result.append(numberOfRadarSites);
		result.append(", unitOfTimeRange: "); //$NON-NLS-1$
		result.append(unitOfTimeRange);
		result.append(", siteLatitude: "); //$NON-NLS-1$
		result.append(siteLatitude);
		result.append(", siteLongitude: "); //$NON-NLS-1$
		result.append(siteLongitude);
		result.append(", siteElevation: "); //$NON-NLS-1$
		result.append(siteElevation);
		result.append(", alphanumericSiteID: "); //$NON-NLS-1$
		result.append(alphanumericSiteID);
		result.append(", numericSiteID: "); //$NON-NLS-1$
		result.append(numericSiteID);
		result.append(", operatingMode: "); //$NON-NLS-1$
		result.append(operatingMode);
		result.append(", reflectivityCalibrationConstant: "); //$NON-NLS-1$
		result.append(reflectivityCalibrationConstant);
		result.append(", qualityControlIndicator: "); //$NON-NLS-1$
		result.append(qualityControlIndicator);
		result.append(", clutterFilterIndicator: "); //$NON-NLS-1$
		result.append(clutterFilterIndicator);
		result.append(", constantAntennaElevationAngle: "); //$NON-NLS-1$
		result.append(constantAntennaElevationAngle);
		result.append(", accumulationInterval: "); //$NON-NLS-1$
		result.append(accumulationInterval);
		result.append(", referenceReflectivity: "); //$NON-NLS-1$
		result.append(referenceReflectivity);
		result.append(", rangeBinSpacing: "); //$NON-NLS-1$
		result.append(rangeBinSpacing);
		result.append(", radialAngularSpacing: "); //$NON-NLS-1$
		result.append(radialAngularSpacing);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.products.IProductDefinition#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		parameterCategory = buffer.get();
		parameterNumber = buffer.get();
		typeOfGeneratingProcess = buffer.get();
		numberOfRadarSites = buffer.get();
		unitOfTimeRange = buffer.get();
		siteLatitude = buffer.getInt();
		siteLongitude = buffer.getInt();
		siteElevation = buffer.getInt();
		alphanumericSiteID = buffer.getInt();
		numericSiteID = buffer.getInt();
		operatingMode = buffer.get();
		reflectivityCalibrationConstant = buffer.get();
		qualityControlIndicator = buffer.get();
		clutterFilterIndicator = buffer.get();
		constantAntennaElevationAngle = buffer.get();
		accumulationInterval = buffer.getShort();
		referenceReflectivity = buffer.get();
		rangeBinSpacing = buffer.getInt();
		radialAngularSpacing = buffer.getShort();
	}
	
} //ProductDefinitionTemplate420Impl
